package D240514.Practice01;

public abstract class MyComparable {
    final double sortArgNumber;
    // 建立26英文字母数列
    private final char[] sortArgChar = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

    // 如果对象中有可以用来直接排列的数据则直接引用
    public MyComparable(double sortArgNumber) {
        this.sortArgNumber = sortArgNumber;
    }

    // 如果没有则转化为可用数据（例：将英文字母转化为数字）
    public MyComparable(char sortArgChar) {
        int i;
        for (i = 0; i < this.sortArgChar.length; i++) {
            // 不区分大小写
            if (this.sortArgChar[i] == sortArgChar || (char) (this.sortArgChar[i] + 32) == sortArgChar) {
                break;
            } else if (i + 1 > 26) {
                System.out.println("无效变量！");
                System.exit(0);
            }
        }
        this.sortArgNumber = i;
    }

    public abstract int compareTo(MyComparable myComparable);
}
